1. Field of the Invention
The present invention relates to a mobile communication system and, more particularly, to a method of decoding turbo codes using a sliding window method.
2. Background of the Related Art
As is well known, turbo codes are generated by two (or more) recursive systematic convolutional encoders (RSCs) connected in parallel through an internal interleaver, and this coding method is used for transmitting data of a high data rate in the next generation mobile communication standard (3 GPP or 3 GPP2).
The turbo code processes a generated information bit sequence in the unit of a block. Especially in case of encoding a large information bit sequence, it is known that a very superior coding gain is obtained with respect to the convolutional codes and a very superior error correction capability is achieved by iteratively decoding simple component codes at a receiving end.
Recently, there has been proposed a relatively simple turbo decoding technique capable of supporting a high-speed data transmission under the mobile communication environment. In this structure, input code words alternately pass through two convolutional decoders and the complexity of the structure is greatly reduced.
However, in order to iteratively pass through the convolutional decoder, it is required that the outputs of the convolutional decoder are not hard-decision values of “0” or “1”, but are soft-decision values corresponding to the rate of a probability that the output of the convolutional decoder is “0” or “1.”
For this, there has been proposed a Maximum A Posteriori (MAP) decoding technique that calculates a posteriori probability values of information bits and performs the decoding so that the probability values become maximum.
Generally, an information source of the turbo codes is the “Markov process” that has a discontinuous time and quantified states. Accordingly, the information source can be expressed through a binary matrix diagram.
In the binary matrix, Sk represents the state of an encoder at a time k and xk=xk,1,k,xk,n(xk={0,1}) represents an output of the encoder whose code rate is 1/n. Here, the number of states Sk=m (m=0,1,2, . . . ,M−1) of the information source is M.
When the time is shifted from k−1to k, an input bit dk of the turbo encoder changes the state Sk−1 of the encoder to Sk. A state sequence S=(S0, . . . ,ST) of the information starts at time k=0 and ends at time k=T. The initial state S0 of the encoder is 0.
The output sequence x of the turbo encoder is modulated by BPSK or QPSK and suffers fading in a discrete memory channel. Accordingly, the sequence received in the receiving end becomes y=(y1,k,yk,k,yT). Here, Yk=(yk,1,k,k,n).
As described above, the MAP algorithm is an algorithm for estimating the a posteriori probability of state shift of the information using the received sequence. The MAP algorithm calculates the a posteriori probability of information bits P(dk=1|y) and P(dk=0|y). Then, the output of the decoder can be finally obtained in the form of a log likelihood ratio (LLR), as expressed by equation 1.                                                                         L                ⁡                                  (                                      d                    k                                    )                                            =                              log                ⁢                                                      P                    ⁡                                          (                                                                        d                          k                                                =                                                  1                          |                          y                                                                    )                                                                            P                    ⁡                                          (                                                                        d                          k                                                =                                                  0                          |                          y                                                                    )                                                                                                                                              =                              log                ⁢                                                                            ∑                                                                                                    (                                                                                          m                                ′                                                            ,                              m                                                        )                                                    ⁢                                                      d                            k                                                                          =                        1                                                              ⁢                                          P                      ⁡                                              (                                                                                                            S                                                              k                                -                                1                                                                                      =                                                          m                              ′                                                                                ,                                                                                    S                              k                                                        =                            m                                                    ,                          y                                                )                                                                                                                        ∑                                                                                                    (                                                                                          m                                ′                                                            ,                              m                                                        )                                                    ⁢                                                      d                            k                                                                          =                        0                                                              ⁢                                          P                      ⁡                                              (                                                                                                            S                                                              k                                -                                1                                                                                      =                                                          m                              ′                                                                                ,                                                                                    S                              k                                                        =                            m                                                    ,                          y                                                )                                                                                                                                                    [                  Equation          ⁢                                          ⁢          1                ]            The a posteriori probability P(Sk−1=m′, Sk=m,y) of the state shift of the information bits is obtained by the equation 2.P(Sk−1=m′, Sk=m,y)=P(Sk−1=m′,yj<k)P(yj>k|Sk=m)P(Sk=m,yk|Sk−1=m′)  [Equation 2]
In equation 2, yj<k represents the received sequence from the initial time to time k−1 and yj>k represents the received sequence from time k+1 to the last time.
Also in equation 2, P(Sk−1=m′,yj<k) is defined as and α(Sk−1) and α(Sk) is derived therefrom. P(yj>k|Sk=m) is defined as β(Sk).
In order to obtain the optimum a posteriori probability, a predetermined period is required before β(Sk) is obtained. This is called a learning period. β(Sk) calculated after the learning period is used for determination of the output bits of the decoder.
Hereinafter, α(Sk) and β(Sk) are called an alpha value and a beta value, respectively.
FIG. 1 is a timing diagram of the related art MAP decoding. The X-axis represents the flow of time, and especially represents which symbol each processor processes as the time flows. The symbol number of a forward processor is increased, and the symbol number of a backward processor is decreased. The slant-lined shading sections represent that the backward processor is in learning. The curved arrows represent the correlation between alpha 5,7 and beta 6,8 values required for the bit decision.
Referring to FIG. 1, two backward processors are used. One backward processor (e.g., the first backward processor 2) performs the learning while the other backward processor (e.g., the second backward processor 3) calculates the beta values required for the bit determination of the decoder.
Specifically, when one MAP decoding starts, the first backward processor 2 performs the learning process from 2L to 1L. During this learning process, the second backward processor 3 is in a standstill state. Here, L represents the length of the sliding window.
Thereafter, the first backward processor 2 calculates the beta values 6 from 1L to 0 and determines bits of the decoder from 1L to 0 using the alpha values 5 from 0 to 1L, which were previously calculated and stored. During the bit determination of the decoder, the second backward processor 3 performs the learning using symbols from 3L to 2L.
In the next sliding window section, the second backward processor 3 determines the bits of the decoder from 2L to 1L by calculating the beta values 8 from 2L to 1L. During this bit determination of the decoder, the first backward processor 2 performs the learning using symbols from 4L to 3L.
As can be seen in the decoder output block, the bit determination is performed in order from 1L to 0, and from 2L to 1L. A proper order is obtained through a last-in first-out (LIFO) process that stores L outputs at a time and reads them from the end.
The above-described process is explained in detail in ‘A. J. Viterbi, “An intuitive justification and a simplified implementation of the MAP decoder for convolutional codes,” IEEE Journal on Selected Areas in Communications, vol.16, no.2, February 1998.’
According to the conventional method as described above, the backward processing is performed twice with respect to almost all symbols. As a result, two times backward processing is required for each MAP decoding and this causes the amount of calculation and the power consumption to be increased. Thus, the use time of the radio mobile equipment that operates using a battery is reduced.
Also, in case that only one backward processor is used for reducing hardware resources, the decoding time is increased twice as much.
Also, if the learning process, forward processing, and backward processing are performed for the length of L, the characteristic that the coding is completed with ST=0 at a trellis termination of the turbo codes cannot be sufficiently used. This causes the coding gain of the turbo codes to deteriorate.
Also, though the size of the memory for storing resultant values is small to the extent of depth 60* width 56 (in case of 3 GPP WCDMA turbo encoder), the depth of a generally used memory is much larger than this and this causes the waste of memory.
The above references are incorporated by reference herein where appropriate for appropriate teachings of additional or alternative details, features and/or technical background.